package com.gogowan.agroenterprise.utils;

import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.text.Html;
import android.text.method.LinkMovementMethod;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;

import com.gogowan.agroenterprise.R;

import java.util.HashMap;
import java.util.List;
import java.util.Map;


public class DialogUitl {

    public static interface OnDialogListener<T> {

        public void onPositiveButtonClick(T t);

        public void onNegativeButtonClick(T t);
    }

    public static class OnDialogEvent<T> implements OnDialogListener<T> {
        @Override
        public void onPositiveButtonClick(T t) {
        }

        @Override
        public void onNegativeButtonClick(T t) {
        }
    }

    //    巡检的生成工单常量
    public static final int GONGDAN_SHEBEI=2;
    public static final int GONGDAN_LINSHI=1;
    public static final int GONGDAN_ANFANG=3;
    public interface DialogClickCallBack {
        void okButtonClick();
        void cancleButtonClick();
    }
    //扫码提交提示弹框
    public static void showTishiDailog(Context context,String title,DialogClickCallBack callBack){
        final AlertDialog adlg = new AlertDialog.Builder(context).create();
        //取消掉[返回键]的作用
//		adlg.setCancelable(false);
        adlg.show();
        Window window = adlg.getWindow();
        window.setContentView(R.layout.widget_alert_dialog_view);
        View.OnClickListener clickListener = v -> {
            int id = v.getId();
            if (id == R.id.cancel_btn) {
                if (callBack != null) {
                    callBack.cancleButtonClick();
                }
            } else if (id == R.id.ok_btn) {
                if (callBack != null) {
                    callBack.okButtonClick();
                }
            }
            adlg.dismiss();
        };

        Button ok_btn = window.findViewById(R.id.ok_btn);
        ok_btn.setOnClickListener(clickListener);
        Button cancel_btn = window.findViewById(R.id.cancel_btn);
        cancel_btn.setVisibility(View.VISIBLE);
        cancel_btn.setOnClickListener(clickListener);
        TextView title_tv = window.findViewById(R.id.dialog_title_tv);
//        TextView content_tv = window.findViewById(R.id.dialog_content_tv);
        title_tv.setText(title);
//        String htmlStr="您本次"+type+"总计<font color='#b61e1d'>("+content+")</font>袋，请您确认数量无误后再提交！";
//        content_tv.setText(Html.fromHtml(htmlStr));
//        content_tv.setMovementMethod(LinkMovementMethod.getInstance());
    }
    //扫码提交提示弹框
    public static void showTishiSubmitDailog(Context context,DialogClickCallBack callBack){
        final AlertDialog adlg = new AlertDialog.Builder(context).create();
        //取消掉[返回键]的作用
//		adlg.setCancelable(false);
        adlg.show();
        Window window = adlg.getWindow();
        window.setContentView(R.layout.alert_dialog_submit_view);
        View.OnClickListener clickListener = v -> {
            int id = v.getId();
            if (id == R.id.cancel_btn) {
                if (callBack != null) {
                    callBack.cancleButtonClick();
                }
            } else if (id == R.id.ok_btn) {
                if (callBack != null) {
                    callBack.okButtonClick();
                }
            }
            adlg.dismiss();
        };

        Button ok_btn = window.findViewById(R.id.ok_btn);
        ok_btn.setOnClickListener(clickListener);
        Button cancel_btn = window.findViewById(R.id.cancel_btn);
        cancel_btn.setVisibility(View.VISIBLE);
        cancel_btn.setOnClickListener(clickListener);
    }
    //扫码提交提示弹框
    public static void showTongyongSubmitDailog(Context context,String title,String message,DialogClickCallBack callBack){
        final AlertDialog adlg = new AlertDialog.Builder(context).create();
        //取消掉[返回键]的作用
//		adlg.setCancelable(false);
        adlg.show();
        Window window = adlg.getWindow();
        window.setContentView(R.layout.alert_dialog_submit_view);
        View.OnClickListener clickListener = v -> {
            int id = v.getId();
            if (id == R.id.cancel_btn) {
                if (callBack != null) {
                    callBack.cancleButtonClick();
                }
            } else if (id == R.id.ok_btn) {
                if (callBack != null) {
                    callBack.okButtonClick();
                }
            }
            adlg.dismiss();
        };

        TextView dialog_content_tv = window.findViewById(R.id.dialog_content_tv);
        dialog_content_tv.setText(message);
        TextView dialog_title = window.findViewById(R.id.dialog_title);
        dialog_title.setText(title);
        Button ok_btn = window.findViewById(R.id.ok_btn);
        ok_btn.setOnClickListener(clickListener);
        Button cancel_btn = window.findViewById(R.id.cancel_btn);
        cancel_btn.setVisibility(View.VISIBLE);
        cancel_btn.setOnClickListener(clickListener);
    }
    public static void showDeleteDailog(Context context,String msg,String no,DialogClickCallBack callBack){
        final AlertDialog adlg = new AlertDialog.Builder(context).create();
        //取消掉[返回键]的作用
//		adlg.setCancelable(false);
        adlg.show();
        Window window = adlg.getWindow();
        window.setContentView(R.layout.alert_delete_dialog_view);
        View.OnClickListener clickListener = v -> {
            int id = v.getId();
            if (id == R.id.cancel_btn) {
                if (callBack != null) {
                    callBack.cancleButtonClick();
                }
            } else if (id == R.id.ok_btn) {
                if (callBack != null) {
                    callBack.okButtonClick();
                }
            }
            adlg.dismiss();
        };

        Button ok_btn = window.findViewById(R.id.ok_btn);
        ok_btn.setOnClickListener(clickListener);
        Button cancel_btn = window.findViewById(R.id.cancel_btn);
        cancel_btn.setVisibility(View.VISIBLE);
        cancel_btn.setOnClickListener(clickListener);
        TextView content_tv = window.findViewById(R.id.dialog_content_tv);
        TextView tv_no = window.findViewById(R.id.tv_no);
        content_tv.setText(msg);
        tv_no.setText(no);
//        String htmlStr="您本次"+type+"总计<font color='#b61e1d'>("+content+")</font>袋，请您确认数量无误后再提交！";
//        content_tv.setText(Html.fromHtml(htmlStr));
//        content_tv.setMovementMethod(LinkMovementMethod.getInstance());
    }
//    public static void showStringArrayDialog(Context context, Integer[] array, final StringArrayDialogCallback callback) {
//        final Dialog dialog = new Dialog(context, R.style.dialog);
//        dialog.setContentView(R.layout.dialog_string_array);
//        dialog.setCancelable(true);
//        dialog.setCanceledOnTouchOutside(true);
//        Window window = dialog.getWindow();
//        window.setWindowAnimations(R.style.bottomToTopAnim);
//        WindowManager.LayoutParams params = window.getAttributes();
//        params.width = WindowManager.LayoutParams.MATCH_PARENT;
//        params.height = WindowManager.LayoutParams.WRAP_CONTENT;
//        params.gravity = Gravity.BOTTOM;
//        window.setAttributes(params);
//        LinearLayout container = (LinearLayout) dialog.findViewById(R.id.container);
//        View.OnClickListener itemListener = new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                TextView textView = (TextView) v;
//                if (callback != null) {
//                    callback.onItemClick(textView.getText().toString(), (int) v.getTag());
//                }
//                dialog.dismiss();
//            }
//        };
//        for (int i = 0, length = array.length; i < length; i++) {
//            TextView textView = new TextView(context);
//            textView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ObjectUtil.dip2px(context,54)));
//            textView.setTextColor(0xff323232);
//            textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18);
//            textView.setGravity(Gravity.CENTER);
//            textView.setText(array[i]);
//            textView.setTag(array[i]);
//            textView.setOnClickListener(itemListener);
//            container.addView(textView);
//            if (i != length - 1) {
//                View v = new View(context);
//                v.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ObjectUtil.dip2px(context,1)));
//                v.setBackgroundColor(0xfff5f5f5);
//                container.addView(v);
//            }
//        }
//        dialog.findViewById(R.id.btn_cancel).setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                dialog.dismiss();
//            }
//        });
//        dialog.show();
//    }
//    public interface StringArrayDialogCallback {
//        void onItemClick(String text, int tag);
//    }
//    public static void showPingJiaDialog(Context context, OnDialogEvent<Map<String,String>> event){
//        //通过LayoutInflater获取登录窗口布局
//        LayoutInflater lf = LayoutInflater.from(context);
//        @SuppressLint("InflateParams") View customView = lf.inflate(R.layout.weixiu_baogao_item, null);
//        AlertDialog.Builder builder = new AlertDialog.Builder(context,R.style.dialog);
//        //设置自定义View并创建AlertDialog
//        AlertDialog alertDialog = builder.setView(customView).create();
//        final TextView et_dialog_content=customView.findViewById(R.id.et_dialog_content);
//        et_dialog_content.setHint("请填写反馈意见");
//        RadioGroup group=customView.findViewById(R.id.group);
//        TextView tv_dialog_content=customView.findViewById(R.id.tv_dialog_content);
//        tv_dialog_content.setText("反馈意见");
//        //满意度：0-不满意，1-满意
//        final int[] manYiDuId = {-1};
//        group.setOnCheckedChangeListener((group1, checkedId) -> {
//            group1.check(checkedId);
//            if (checkedId == R.id.rb_manyi) {
//                manYiDuId[0] = 1;
//            } else if (checkedId == R.id.rb_no_manyi) {
//                manYiDuId[0] = 0;
//            }
//        });
//        Button btn_cacl = customView.findViewById(R.id.btn_cacl);
//        btn_cacl.setOnClickListener(v -> alertDialog.dismiss());
//        Button ok = customView.findViewById(R.id.btn_ok);
//        ok.setOnClickListener(v -> {
//
//            String contetnString=et_dialog_content.getText().toString();
//            if (ObjectUtil.isBlank(contetnString)){
//                Toast.makeText(context, "请输入反馈意见", Toast.LENGTH_SHORT).show();
//                return;
//            }
//            int mayiduId=manYiDuId[0];
//            if (mayiduId==-1){
//                Toast.makeText(context, "请选择是否满意", Toast.LENGTH_SHORT).show();
//                return;
//            }
//            alertDialog.dismiss();
//            Map<String ,String>map=new HashMap<>();
//            map.put("contetnString",contetnString);
//            map.put("mayiduId",mayiduId+"");
//           event.onPositiveButtonClick(map);
//        });
//        alertDialog.show();
//    }
//    public static void showYiFeiDialog(Context context,String number,String weight, OnDialogEvent<Map<String,String>> event){
//        //通过LayoutInflater获取登录窗口布局
//        LayoutInflater lf = LayoutInflater.from(context);
//        @SuppressLint("InflateParams") View customView = lf.inflate(R.layout.yifei_tishi_item, null);
//        AlertDialog.Builder builder = new AlertDialog.Builder(context,R.style.dialog);
//        //设置自定义View并创建AlertDialog
//        AlertDialog alertDialog = builder.setView(customView).create();
//        final TextView tv_zhongliang=customView.findViewById(R.id.tv_zhongliang);
//        tv_zhongliang.setText(weight);
//        final TextView tv_daishu=customView.findViewById(R.id.tv_daishu);
//        tv_daishu.setText(number);
//        Button btn_cacl = customView.findViewById(R.id.btn_cacl);
//        btn_cacl.setOnClickListener(v -> alertDialog.dismiss());
//        Button ok = customView.findViewById(R.id.btn_ok);
//        ok.setOnClickListener(v -> {
//            alertDialog.dismiss();
//            Map<String ,String>map=new HashMap<>();
//           event.onPositiveButtonClick(map);
//        });
//        alertDialog.show();
//    }
//
//    /**
//     * 选择ip地址
//     * @param context
//     * @param event
//     */
//    public static void showSelectIp(Context context, List<DaiBanRecycleBean> gongGongList, OnDialogEvent<DaiBanRecycleBean> event){
//        //通过LayoutInflater获取登录窗口布局
//        LayoutInflater lf = LayoutInflater.from(context);
//        @SuppressLint("InflateParams") View customView = lf.inflate(R.layout.select_ip_dialog, null);
//        AlertDialog.Builder builder = new AlertDialog.Builder(context,R.style.dialog);
//        //设置自定义View并创建AlertDialog
//        AlertDialog alertDialog = builder.setView(customView).create();
//        ListView listView = customView.findViewById(R.id.listView);
//        SelectIpAdapter mAdapter = new SelectIpAdapter(context, gongGongList);
//        listView.setAdapter(mAdapter);
//        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
//            @Override
//            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//                DaiBanRecycleBean daiBanRecycleBean = gongGongList.get(position);
//                event.onPositiveButtonClick(daiBanRecycleBean);
//                alertDialog.dismiss();
//            }
//        });
//        alertDialog.show();
//    }
//
//
//
//    //1未通过，2拒绝了
//    public static void showJuJueDialog(Context context,int type,OnDialogEvent<String> event){
//        //通过LayoutInflater获取登录窗口布局
//        LayoutInflater lf = LayoutInflater.from(context);
//        @SuppressLint("InflateParams") View customView = lf.inflate(R.layout.weixiu_jujue_item, null);
//        AlertDialog.Builder builder = new AlertDialog.Builder(context,R.style.dialog);
//        //设置自定义View并创建AlertDialog
//        AlertDialog alertDialog = builder.setView(customView).create();
//        final TextView et_dialog_content=customView.findViewById(R.id.et_dialog_content);
//        final TextView tv_title=customView.findViewById(R.id.tv_title);
//        final TextView tv_dialog_content=customView.findViewById(R.id.tv_dialog_content);
//        if (type==1){
//            tv_title.setText("未通过原因");
//            tv_dialog_content.setText("未通过原因");
//            et_dialog_content.setHint("请输入您的未通过原因");
//        }else if(type==2) {
//            tv_title.setText("拒绝退单原因");
//            tv_dialog_content.setText("拒绝退单原因");
//            et_dialog_content.setHint("请输入您的拒绝退单原因");
//        }else if(type==3) {
//            tv_title.setText("忽略原因");
//            tv_dialog_content.setText("忽略原因");
//            et_dialog_content.setHint("请输入您的忽略原因");
//        }
//        Button btn_cacl = customView.findViewById(R.id.btn_cacl);
//        btn_cacl.setOnClickListener(v -> alertDialog.dismiss());
//        Button ok = customView.findViewById(R.id.btn_ok);
//        ok.setOnClickListener(v -> {
//            String contetnString=et_dialog_content.getText().toString();
//            if (ObjectUtil.isBlank(contetnString)){
//
//                if (type==1){
//                    Toast.makeText(context, "请输入未通过原因", Toast.LENGTH_SHORT).show();
//                }else if(type==2) {
//                    Toast.makeText(context, "请输入拒绝退单原因", Toast.LENGTH_SHORT).show();
//                }else if(type==3) {
//                    Toast.makeText(context, "请输入忽略原因", Toast.LENGTH_SHORT).show();
//                }
//                return;
//            }
//            alertDialog.dismiss();
//            event.onPositiveButtonClick(contetnString);
//        });
//        alertDialog.show();
//    }
//    //缓存清理
//    public static void showHuanCengDialog(Context context,String source , OnDialogEvent<String> event){
//        //通过LayoutInflater获取登录窗口布局
//        LayoutInflater lf = LayoutInflater.from(context);
//        @SuppressLint("InflateParams") View customView = lf.inflate(R.layout.new_qingli_dialog, null);
//        AlertDialog.Builder builder = new AlertDialog.Builder(context,R.style.dialog);
//        //设置自定义View并创建AlertDialog
//        AlertDialog alertDialog = builder.setView(customView).create();
//        Button btn_cacl = customView.findViewById(R.id.btn_cacl);
//        TextView tv_title = customView.findViewById(R.id.tv_title);
//        btn_cacl.setOnClickListener(v -> alertDialog.dismiss());
//        Button ok = customView.findViewById(R.id.btn_ok);
//        if ("up".equals(source)){
//            //上传
//            tv_title.setText("是否清空已上传记录？");
//            ok.setText("清空");
//        }else{
//            //清理缓存
//        }
//        ok.setOnClickListener(v -> {
//
//            alertDialog.dismiss();
//            event.onPositiveButtonClick("");
//        });
//        alertDialog.show();
//    }
//    //隐私协议
//    public static void showYinSiDialog(Context context,OnDialogEvent<Integer> event){
//        View view= LayoutInflater.from(context).inflate(R.layout.yinsi_dialog,null);
//        AlertDialog.Builder builder = new AlertDialog.Builder(context,R.style.dialog);
//        builder.setView(view);
//        builder.setCancelable(false);
//        final AlertDialog alertDialog = builder.create();
//        alertDialog.show();
//        TextView tv_fuwu = view.findViewById(R.id.tv_fuwu);
//        tv_fuwu.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                event.onPositiveButtonClick(0);
//
//
//            }
//        });
//        TextView tv_yinsi = view.findViewById(R.id.tv_yinsi);
//        tv_yinsi.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                event.onPositiveButtonClick(1);
//
//            }
//        });
//        view.findViewById(R.id.tv_no_ok).setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
////                context.finish();
//                event.onPositiveButtonClick(2);
//            }
//        });
//        view.findViewById(R.id.tv_ok).setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                alertDialog.dismiss();
//                //需要在主app中加上这些内容
//
////                MyApplication.editor.putBoolean(MyApplication.IS_TONGYI_XIEYI,true);
////                MyApplication.editor.commit();
////                JPushInterface.resumePush(context);
//            }
//        });
//    }
//    //超时
//    public static void showChaoShiDialog(Context context,OnDialogEvent<Void> event){
//        //通过LayoutInflater获取登录窗口布局
//        LayoutInflater lf = LayoutInflater.from(context);
//        @SuppressLint("InflateParams") View customView = lf.inflate(R.layout.xunjian_chaoshi_item, null);
//        AlertDialog.Builder builder = new AlertDialog.Builder(context,R.style.dialog);
//        //设置自定义View并创建AlertDialog
//        AlertDialog alertDialog = builder.setView(customView).create();
//        Button ok = customView.findViewById(R.id.btn_ok);
//        ok.setOnClickListener(v -> {
//            alertDialog.dismiss();
//            event.onPositiveButtonClick(null);
//        });
//        alertDialog.show();
//    }
//
//    public static void showTiShiDialog(Context context, OnDialogEvent<Void> event){
//        //通过LayoutInflater获取登录窗口布局
//        LayoutInflater lf = LayoutInflater.from(context);
//        @SuppressLint("InflateParams") View customView = lf.inflate(R.layout.xunjian_tishi_item, null);
//        AlertDialog.Builder builder = new AlertDialog.Builder(context,R.style.dialog);
//        //设置自定义View并创建AlertDialog
//        AlertDialog alertDialog = builder.setView(customView).create();
//        final TextView et_dialog_content=customView.findViewById(R.id.et_dialog_content);
//        View btn_cacl = customView.findViewById(R.id.btn_cacl);
//        btn_cacl.setOnClickListener(v -> alertDialog.dismiss());
//        View ok = customView.findViewById(R.id.btn_ok);
//        ok.setOnClickListener(v -> {
//            alertDialog.dismiss();
//            event.onPositiveButtonClick(null);
//        });
//        alertDialog.show();
//    }
//
//    /**
//     * 生成设备的报修
//     */
//    public static void showBaoXiuDanDialog(Context context,int type, OnDialogEvent<Integer> event){
//        //通过LayoutInflater获取登录窗口布局
//        LayoutInflater lf = LayoutInflater.from(context);
//        View customView = lf.inflate(R.layout.xunjian_gongdan_item, null);
//        AlertDialog.Builder builder = new AlertDialog.Builder(context,R.style.dialog);
//        //设置自定义View并创建AlertDialog
//        AlertDialog alertDialog = builder.setView(customView).create();
//        final ImageView iv_fankui=customView.findViewById(R.id.iv_fankui);
//        final TextView tv_title=customView.findViewById(R.id.tv_title);
//        iv_fankui.setImageResource(R.mipmap.new_baoxiudan);
//        View btn_cacl = customView.findViewById(R.id.btn_cacl);
//        btn_cacl.setOnClickListener(v -> {
//            alertDialog.dismiss();
//            event.onNegativeButtonClick(-1);
//        });
//        Button ok = customView.findViewById(R.id.btn_ok);
//        Button ok1 = customView.findViewById(R.id.btn_ok1);
//        ImageView iv_close = customView.findViewById(R.id.iv_close);
//        iv_close.setOnClickListener(v -> {
//            alertDialog.dismiss();
//            event.onNegativeButtonClick(-1);
//        });
//        if (type== GONGDAN_LINSHI){
//            ok.setText("生成");
//            ok1.setVisibility(View.GONE);
//            tv_title.setText("存在异常项目，是否生成报修单");
//            btn_cacl.setVisibility(View.VISIBLE);
//            iv_close.setVisibility(View.GONE);
//        }else {
//            ok.setText("生成");
//            ok1.setVisibility(View.GONE);
//            tv_title.setText("存在异常项目，是否生成报修单");
//            btn_cacl.setVisibility(View.VISIBLE);
//            iv_close.setVisibility(View.GONE);
//        }
//        ok.setOnClickListener(v -> {
//            alertDialog.dismiss();
//            if (type== GONGDAN_LINSHI){
//                event.onPositiveButtonClick(GONGDAN_LINSHI);
//            }else{
//                event.onPositiveButtonClick(GONGDAN_SHEBEI);
//            }
//        });
//        alertDialog.show();
//    }
//    public static void showTextDialog(Context context, String title, String msg, boolean isAlertDialog, final OnDialogListener<Void> onDialogListener) {
//        final AlertDialog adlg = new AlertDialog.Builder(context).create();
//        //取消掉[返回键]的作用
////		adlg.setCancelable(false);
//        adlg.show();
//        Window window = adlg.getWindow();
//        window.setContentView(R.layout.widget_alert_dialog_view);
//        View.OnClickListener clickListener = v -> {
//            int id = v.getId();
//            if (id == R.id.cancel_btn) {
//                if (onDialogListener != null) {
//                    onDialogListener.onNegativeButtonClick(null);
//                }
//            } else if (id == R.id.ok_btn) {
//                if (onDialogListener != null) {
//                    onDialogListener.onPositiveButtonClick(null);
//                }
//            }
//            adlg.dismiss();
//        };
//
//        Button ok_btn = (Button) window.findViewById(R.id.ok_btn);
//        ok_btn.setOnClickListener(clickListener);
//        Button cancel_btn = (Button) window.findViewById(R.id.cancel_btn);
//        if (isAlertDialog) {
//            cancel_btn.setVisibility(View.GONE);
//        } else {
//            cancel_btn.setVisibility(View.VISIBLE);
//            cancel_btn.setOnClickListener(clickListener);
//        }
//
//        TextView title_tv = (TextView) window.findViewById(R.id.dialog_title_tv);
//        TextView content_tv = (TextView) window.findViewById(R.id.dialog_content_tv);
//        title_tv.setText(title);
//        content_tv.setText(msg);
//    }
}
